#include "objet.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>

float getcadenceObjet(const Objet* O)
{
    return O->cadence;
}

int getconsoObjet(const Objet* O)
{
    return O->conso;
}

int getxObjet(const Objet* O)
{
	return O->x;
}

int getyObjet(const Objet* O)
{
	return O->y;
}


int getForceObjet(const Objet* O)
{
    if (!O)
        return 10;
	return O->Force;
}

float getPorteeObjet(const Objet* O)
{
	return O->Portee;
}

int getidObjetObjet(const Objet* O)
{
    if (!O)
        return 0;
	return O->IdObjet;
}

int getVitesseObjet(const Objet* O)
{
    return O->vitesse;
}

void setconsoObjet(Objet* O,int conso)
{
    O->conso=conso;
}

void setcadenceObjet(Objet* O , float cadence)
{
    O->cadence=cadence;
}

void setxyObjet(Objet* O,int x,int y)
{
	O->x = x ;
	O->y = y ;
}

void setForceObjet(Objet* O,int Force)
{
	O->Force = Force ;
}

void setPorteeObjet(Objet* O,float Portee)
{
	O->Portee = Portee ;
}
void setidObjetObjet(Objet* O,int idObjet)
{
	O->IdObjet = idObjet ;
}

void setVitesseObjet(Objet* O, int v)
{
    O->vitesse=v;
}

void copieObjet(Objet* destination, const Objet* source)
{
    destination->cadence = source->cadence;
    destination->vitesse= source->vitesse;
    destination->Force = source->Force;
    destination->Portee = source->Portee;
    destination->IdObjet = source->IdObjet;
}

void InitObjet(Objet * O, char * mottype, int x, int y)
{
    int effectue=0,conso=0;
    char ligne[254];
    FILE* fichier_objet;

    O->x=x;
    O->y=y;

    fichier_objet=fopen("data/objet.conf","r");
    if (fichier_objet==NULL)
    {
        printf("fichier non ouvert!\n");
        exit(EXIT_FAILURE);
    }
    while ((!feof(fichier_objet))&&(effectue==0))
    {
        fscanf(fichier_objet,"%s\n",ligne);
        if (!strcmp("/*CONSOMMABLES*/",ligne))
            conso=1;
        if (!strcmp(mottype,ligne))
        {
            if (conso)
            {
                fscanf(fichier_objet,"ID=%d\n",&O->IdObjet);
                O->conso=5*(rand()%3+2);
                O->cadence=0;
                O->vitesse=0;
                O->Force=0;
                O->Portee=0;
            }
            else
            {
                fscanf(fichier_objet,"ID=%d\n",&O->IdObjet);
                O->conso=0;
                fscanf(fichier_objet,"cadence=%f\n",&O->cadence);
                fscanf(fichier_objet,"vitesse=%d\n",&O->vitesse);
                fscanf(fichier_objet,"Force=%d\n",&O->Force);
                fscanf(fichier_objet,"Portee=%f\n",&O->Portee);
            }

            effectue=1;
        }
    }
    fclose(fichier_objet);
}
